package main

import (
	"ais-go/app/controller"
	"ais-go/app/models"
	"ais-go/app/services"
	"fmt"
	"github.com/gin-contrib/cors"
	"github.com/gin-gonic/gin"
)

func main() {
	err := models.InitDb()
	if err != nil {
		fmt.Println("数据库连接失败")
		return
	}
	r := gin.Default()
	r.Use(cors.New(cors.Config{
		AllowAllOrigins:  true,
		AllowMethods:     []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"},
		AllowHeaders:     []string{"Content-Type", "Authorization"},
		AllowCredentials: true,
		MaxAge:           86400,
	}))

	r.POST("/login", func(c *gin.Context) {
		controller.Login.Login(c)
	})
	r.POST("/register", func(c *gin.Context) {
		controller.Login.Register(c)
	})

	sys := r.Group("/sys")
	{
		sys.GET("/getUserList", func(c *gin.Context) {
			controller.System.GetUserList(c)
		})
		sys.POST("/addUser", func(c *gin.Context) {
			controller.System.AddUser(c)
		})
		sys.POST("/updateUser", func(c *gin.Context) {
			controller.System.UpdateUser(c)
		})
		sys.POST("/delUser", func(c *gin.Context) {
			controller.System.DelUser(c)
		})
		sys.GET("/getRoleList", func(c *gin.Context) {
			controller.System.GetRoleList(c)
		})
		sys.POST("/addRole", func(c *gin.Context) {
			controller.System.AddRole(c)
		})
		sys.POST("/updateRole", func(c *gin.Context) {
			controller.System.UpdateRole(c)
		})
		sys.POST("/delRole", func(c *gin.Context) {
			controller.System.DelRole(c)
		})
		sys.GET("/getRightList", func(c *gin.Context) {
			controller.System.GetRightList(c)
		})
		sys.POST("/addRight", func(c *gin.Context) {
			controller.System.AddRight(c)
		})
		sys.POST("/delRight", func(c *gin.Context) {
			controller.System.DelRight(c)
		})
		sys.POST("/updateRight", func(c *gin.Context) {
			controller.System.UpdateRight(c)
		})
		sys.GET("/getUser", func(c *gin.Context) {
			controller.System.GetUser(c)
		})
	}
	port := r.Group("/port")
	{
		port.GET("/getPortListByPage", func(c *gin.Context) {
			controller.Port.GetPortListByPage(c)
		})
		port.GET("/getPortListByCountryName", func(c *gin.Context) {
			controller.Port.GetPortListByCountryName(c)
		})
		port.GET("/getPortListByPortName", func(c *gin.Context) {
			controller.Port.GetPortListByPortName(c)
		})
		port.GET("/getCountryList", func(c *gin.Context) {
			controller.Port.GetCountryList(c)
		})
		port.GET("/getPortListByCountry", func(c *gin.Context) {
			controller.Port.GetPortListByCountry(c)
		})
		//	GetCountryAndCount
		port.GET("/getCountryAndCount", func(c *gin.Context) {
			controller.Port.GetCountryAndCount(c)
		})
	}

	services.Test()

	r.Run(":1130")
}
